package com.basic.business.wholeIndicators.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.basic.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import com.basic.common.utils.StringUtils;
import com.basic.common.utils.uuid.ULID;

/**
 * 全站推指标数据对象 t_whole_station_indicators
 *
 * @author zhaoxy_jn@163.com
 * @date 2025-02-11
 */
@Getter
@Setter
@ExcelIgnoreUnannotated
public class TWholeStationIndicators extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private String id;

    /** 店铺id */
    @ExcelProperty(value = "店铺id")
    private String storeId;

    /** 文件id */
    @ExcelProperty(value = "文件id")
    private String fileId;

    /** 统计日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "统计日期")
    private Date statDate;

    /** 主体id */
    @ExcelProperty(value = "主体id")
    private String mainBodyId;

    /** 主体类型 */
    @ExcelProperty(value = "主体类型")
    private String mainBodyType;

    /** 主体名称 */
    @ExcelProperty(value = "主体名称")
    private String mainBodyName;

    /** 花费 */
    @ExcelProperty(value = "花费")
    private BigDecimal costAmount;

    /** 总成交金额 */
    @ExcelProperty(value = "总成交金额")
    private BigDecimal totalTransactionAmount;

    /** 实际投产比 */
    @ExcelProperty(value = "实际投产比")
    private Double actualProductionRatio;

    /** 展现量 */
    @ExcelProperty(value = "展现量")
    private Integer impressions;

    /** 点击量 */
    @ExcelProperty(value = "点击量")
    private Integer hits;

    /** 点击率 */
    @ExcelProperty(value = "点击率")
    private String clickRate;

    /** 平均点击花费 */
    @ExcelProperty(value = "平均点击花费")
    private BigDecimal averageClickCost;

    /** 千次展现花费 */
    @ExcelProperty(value = "千次展现花费")
    private BigDecimal thousandShowCost;

    /** 总成交笔数 */
    @ExcelProperty(value = "总成交笔数")
    private Integer totalTransactionsNumber;

    /** 点击转化率 */
    @ExcelProperty(value = "点击转化率")
    private String clickConversionRate;

    /** 总购物车数 */
    @ExcelProperty(value = "总购物车数")
    private Integer totalShopCartNumber;

    /** 收藏宝贝数 */
    @ExcelProperty(value = "收藏宝贝数")
    private Integer collectTreasureNumber;

    /** 宝贝收藏加购数 */
    @ExcelProperty(value = "宝贝收藏加购数")
    private Integer collectTreasureBuyNumber;

    /** 助推展现量 */
    @ExcelProperty(value = "助推展现量")
    private Integer boostShowNumber;

    /** 助推带动点击量 */
    @ExcelProperty(value = "助推带动点击量")
    private Integer boostClickNumber;

    /** 直接成交金额 */
    @ExcelProperty(value = "直接成交金额")
    private BigDecimal directBusinessAmount;

    /** 直接成交笔数 */
    @ExcelProperty(value = "直接成交笔数")
    private Integer directBusinessNumber;

    /** 总预售成交额 */
    @ExcelProperty(value = "总预售成交额")
    private BigDecimal totalPreSaleAmount;

    /** 总预售成笔数 */
    @ExcelProperty(value = "总预售成笔数")
    private Integer totalPreSaleNumber;

    /** 直接预售成交额 */
    @ExcelProperty(value = "直接预售成交额")
    private BigDecimal directPreSaleAmount;

    /** 直接预售成笔数 */
    @ExcelProperty(value = "直接预售成笔数")
    private Integer directPreSaleNumber;

    /** 含预售投产比 */
    @ExcelProperty(value = "含预售投产比")
    private Double preSaleRatio;

    /** 状态 正常：NORMAL 删除：DELETED 锁定：LOCKED */
    @ExcelProperty(value = "状态 正常：NORMAL 删除：DELETED 锁定：LOCKED")
    private String status;

    /** 用户id */
    private Long userId;

    /** 部门id */
    private Long deptId;

    public void setId(String id) {
        this.id = StringUtils.isNotEmpty(id) ? id : ULID.getId();
    }
}
